package co.fitstart.weapp.api.entity;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;

import org.apache.commons.lang3.StringUtils;

import co.fitstart.entity.market.satisfaction.CoachService;
import co.fitstart.entity.market.satisfaction.CoachType;
import co.fitstart.entity.market.satisfaction.ServerOption;
import co.fitstart.entity.market.satisfaction.SiteOption;

/**
 * 
 * @author haiyan_xiao
 *
 */
public class SatisfactionSurveyRequest {

    private Long id;

    private String city;

    private String district;

    @Enumerated(EnumType.ORDINAL)
    private SiteOption siteAnswerOne;

    @Enumerated(EnumType.ORDINAL)
    private SiteOption siteAnswerTwo;

    @Enumerated(EnumType.ORDINAL)
    private SiteOption siteAnswerThree;

    private String siteAnswerFour;

    @Enumerated(EnumType.ORDINAL)
    private ServerOption serverAnswerOne;

    @Enumerated(EnumType.ORDINAL)
    private ServerOption serverAnswerTwo;

    @Enumerated(EnumType.ORDINAL)
    private ServerOption serverAnswerThree;

    private String serverRemarkThree;

    @Enumerated(EnumType.ORDINAL)
    private ServerOption serverAnswerFour;

    private String serverRemarkFour;

    private Integer serverAnswerFive;

    private String serverAnswerSix;

    private Boolean coachAnswerOne;

    private Boolean coachAnswerTwo;

    private Boolean coachAnswerThree;

    private Boolean coachAnswerFour;

    @Enumerated(EnumType.ORDINAL)
    private CoachType coachAnswerFive;

    private Boolean coachAnswerSix;

    private Boolean coachAnswerSeven;

    private CoachService[] CoachServices;

    private Boolean totalAnswerOne;

    private Boolean totalAnswerTwo;

    private Integer totalAnswerThree;

    private String totalAnswerFour;

    private Integer totalAnswerFive;

    private String totalAnswerSix;

    private Boolean totalAnswerSeven;

    private String totalAnswerEight;

    private String totalAnswerNine;

    public SatisfactionSurveyRequest() {
        
    }

    /**
     * 
     * @return
     */
    public boolean isValid() {
        if(this.id == null || StringUtils.isBlank(city) || StringUtils.isBlank(district)
                || siteAnswerOne == null || siteAnswerThree == null
                || serverAnswerOne == null || serverAnswerTwo == null || serverAnswerThree == null
                || serverAnswerFour == null || serverAnswerFive == null
                || coachAnswerOne == null || coachAnswerTwo == null || coachAnswerThree == null
                || coachAnswerFour == null || coachAnswerFive == null || coachAnswerSix == null
                || coachAnswerSeven == null || totalAnswerOne == null || totalAnswerTwo == null
                || totalAnswerThree == null || totalAnswerFive == null || totalAnswerSeven == null
                || StringUtils.isBlank(totalAnswerEight)) {
            return false;
        } else {
            return true;
        }
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return the city
     */
    public String getCity() {
        return city;
    }

    /**
     * @param city the city to set
     */
    public void setCity(String city) {
        this.city = city;
    }

    /**
     * @return the district
     */
    public String getDistrict() {
        return district;
    }

    /**
     * @param district the district to set
     */
    public void setDistrict(String district) {
        this.district = district;
    }

    /**
     * @return the siteAnswerOne
     */
    public SiteOption getSiteAnswerOne() {
        return siteAnswerOne;
    }

    /**
     * @param siteAnswerOne the siteAnswerOne to set
     */
    public void setSiteAnswerOne(SiteOption siteAnswerOne) {
        this.siteAnswerOne = siteAnswerOne;
    }

    /**
     * @return the siteAnswerTwo
     */
    public SiteOption getSiteAnswerTwo() {
        return siteAnswerTwo;
    }

    /**
     * @param siteAnswerTwo the siteAnswerTwo to set
     */
    public void setSiteAnswerTwo(SiteOption siteAnswerTwo) {
        this.siteAnswerTwo = siteAnswerTwo;
    }

    /**
     * @return the siteAnswerThree
     */
    public SiteOption getSiteAnswerThree() {
        return siteAnswerThree;
    }

    /**
     * @param siteAnswerThree the siteAnswerThree to set
     */
    public void setSiteAnswerThree(SiteOption siteAnswerThree) {
        this.siteAnswerThree = siteAnswerThree;
    }

    /**
     * @return the siteAnswerFour
     */
    public String getSiteAnswerFour() {
        return siteAnswerFour;
    }

    /**
     * @param siteAnswerFour the siteAnswerFour to set
     */
    public void setSiteAnswerFour(String siteAnswerFour) {
        this.siteAnswerFour = siteAnswerFour;
    }

    /**
     * @return the serverAnswerOne
     */
    public ServerOption getServerAnswerOne() {
        return serverAnswerOne;
    }

    /**
     * @param serverAnswerOne the serverAnswerOne to set
     */
    public void setServerAnswerOne(ServerOption serverAnswerOne) {
        this.serverAnswerOne = serverAnswerOne;
    }

    /**
     * @return the serverAnswerTwo
     */
    public ServerOption getServerAnswerTwo() {
        return serverAnswerTwo;
    }

    /**
     * @param serverAnswerTwo the serverAnswerTwo to set
     */
    public void setServerAnswerTwo(ServerOption serverAnswerTwo) {
        this.serverAnswerTwo = serverAnswerTwo;
    }

    /**
     * @return the serverAnswerThree
     */
    public ServerOption getServerAnswerThree() {
        return serverAnswerThree;
    }

    /**
     * @param serverAnswerThree the serverAnswerThree to set
     */
    public void setServerAnswerThree(ServerOption serverAnswerThree) {
        this.serverAnswerThree = serverAnswerThree;
    }

    /**
     * @return the serverRemarkThree
     */
    public String getServerRemarkThree() {
        return serverRemarkThree;
    }

    /**
     * @param serverRemarkThree the serverRemarkThree to set
     */
    public void setServerRemarkThree(String serverRemarkThree) {
        this.serverRemarkThree = serverRemarkThree;
    }

    /**
     * @return the serverAnswerFour
     */
    public ServerOption getServerAnswerFour() {
        return serverAnswerFour;
    }

    /**
     * @param serverAnswerFour the serverAnswerFour to set
     */
    public void setServerAnswerFour(ServerOption serverAnswerFour) {
        this.serverAnswerFour = serverAnswerFour;
    }

    /**
     * @return the serverRemarkFour
     */
    public String getServerRemarkFour() {
        return serverRemarkFour;
    }

    /**
     * @param serverRemarkFour the serverRemarkFour to set
     */
    public void setServerRemarkFour(String serverRemarkFour) {
        this.serverRemarkFour = serverRemarkFour;
    }

    /**
     * @return the serverAnswerFive
     */
    public Integer getServerAnswerFive() {
        return serverAnswerFive;
    }

    /**
     * @param serverAnswerFive the serverAnswerFive to set
     */
    public void setServerAnswerFive(Integer serverAnswerFive) {
        this.serverAnswerFive = serverAnswerFive;
    }

    /**
     * @return the serverAnswerSix
     */
    public String getServerAnswerSix() {
        return serverAnswerSix;
    }

    /**
     * @param serverAnswerSix the serverAnswerSix to set
     */
    public void setServerAnswerSix(String serverAnswerSix) {
        this.serverAnswerSix = serverAnswerSix;
    }

    /**
     * @return the coachAnswerOne
     */
    public Boolean getCoachAnswerOne() {
        return coachAnswerOne;
    }

    /**
     * @param coachAnswerOne the coachAnswerOne to set
     */
    public void setCoachAnswerOne(Boolean coachAnswerOne) {
        this.coachAnswerOne = coachAnswerOne;
    }

    /**
     * @return the coachAnswerTwo
     */
    public Boolean getCoachAnswerTwo() {
        return coachAnswerTwo;
    }

    /**
     * @param coachAnswerTwo the coachAnswerTwo to set
     */
    public void setCoachAnswerTwo(Boolean coachAnswerTwo) {
        this.coachAnswerTwo = coachAnswerTwo;
    }

    /**
     * @return the coachAnswerThree
     */
    public Boolean getCoachAnswerThree() {
        return coachAnswerThree;
    }

    /**
     * @param coachAnswerThree the coachAnswerThree to set
     */
    public void setCoachAnswerThree(Boolean coachAnswerThree) {
        this.coachAnswerThree = coachAnswerThree;
    }

    /**
     * @return the coachAnswerFour
     */
    public Boolean getCoachAnswerFour() {
        return coachAnswerFour;
    }

    /**
     * @param coachAnswerFour the coachAnswerFour to set
     */
    public void setCoachAnswerFour(Boolean coachAnswerFour) {
        this.coachAnswerFour = coachAnswerFour;
    }

    /**
     * @return the coachAnswerFive
     */
    public CoachType getCoachAnswerFive() {
        return coachAnswerFive;
    }

    /**
     * @param coachAnswerFive the coachAnswerFive to set
     */
    public void setCoachAnswerFive(CoachType coachAnswerFive) {
        this.coachAnswerFive = coachAnswerFive;
    }

    /**
     * @return the coachAnswerSix
     */
    public Boolean getCoachAnswerSix() {
        return coachAnswerSix;
    }

    /**
     * @param coachAnswerSix the coachAnswerSix to set
     */
    public void setCoachAnswerSix(Boolean coachAnswerSix) {
        this.coachAnswerSix = coachAnswerSix;
    }

    /**
     * @return the coachAnswerSeven
     */
    public Boolean getCoachAnswerSeven() {
        return coachAnswerSeven;
    }

    /**
     * @param coachAnswerSeven the coachAnswerSeven to set
     */
    public void setCoachAnswerSeven(Boolean coachAnswerSeven) {
        this.coachAnswerSeven = coachAnswerSeven;
    }

    /**
     * @return the coachServices
     */
    public CoachService[] getCoachServices() {
        return CoachServices;
    }

    /**
     * @param coachServices the coachServices to set
     */
    public void setCoachServices(CoachService[] coachServices) {
        CoachServices = coachServices;
    }

    /**
     * @return the totalAnswerOne
     */
    public Boolean getTotalAnswerOne() {
        return totalAnswerOne;
    }

    /**
     * @param totalAnswerOne the totalAnswerOne to set
     */
    public void setTotalAnswerOne(Boolean totalAnswerOne) {
        this.totalAnswerOne = totalAnswerOne;
    }

    /**
     * @return the totalAnswerTwo
     */
    public Boolean getTotalAnswerTwo() {
        return totalAnswerTwo;
    }

    /**
     * @param totalAnswerTwo the totalAnswerTwo to set
     */
    public void setTotalAnswerTwo(Boolean totalAnswerTwo) {
        this.totalAnswerTwo = totalAnswerTwo;
    }

    /**
     * @return the totalAnswerThree
     */
    public Integer getTotalAnswerThree() {
        return totalAnswerThree;
    }

    /**
     * @param totalAnswerThree the totalAnswerThree to set
     */
    public void setTotalAnswerThree(Integer totalAnswerThree) {
        this.totalAnswerThree = totalAnswerThree;
    }

    /**
     * @return the totalAnswerFour
     */
    public String getTotalAnswerFour() {
        return totalAnswerFour;
    }

    /**
     * @param totalAnswerFour the totalAnswerFour to set
     */
    public void setTotalAnswerFour(String totalAnswerFour) {
        this.totalAnswerFour = totalAnswerFour;
    }

    /**
     * @return the totalAnswerFive
     */
    public Integer getTotalAnswerFive() {
        return totalAnswerFive;
    }

    /**
     * @param totalAnswerFive the totalAnswerFive to set
     */
    public void setTotalAnswerFive(Integer totalAnswerFive) {
        this.totalAnswerFive = totalAnswerFive;
    }

    /**
     * @return the totalAnswerSix
     */
    public String getTotalAnswerSix() {
        return totalAnswerSix;
    }

    /**
     * @param totalAnswerSix the totalAnswerSix to set
     */
    public void setTotalAnswerSix(String totalAnswerSix) {
        this.totalAnswerSix = totalAnswerSix;
    }

    /**
     * @return the totalAnswerSeven
     */
    public Boolean getTotalAnswerSeven() {
        return totalAnswerSeven;
    }

    /**
     * @param totalAnswerSeven the totalAnswerSeven to set
     */
    public void setTotalAnswerSeven(Boolean totalAnswerSeven) {
        this.totalAnswerSeven = totalAnswerSeven;
    }

    /**
     * @return the totalAnswerEight
     */
    public String getTotalAnswerEight() {
        return totalAnswerEight;
    }

    /**
     * @param totalAnswerEight the totalAnswerEight to set
     */
    public void setTotalAnswerEight(String totalAnswerEight) {
        this.totalAnswerEight = totalAnswerEight;
    }

    /**
     * @return the totalAnswerNine
     */
    public String getTotalAnswerNine() {
        return totalAnswerNine;
    }

    /**
     * @param totalAnswerNine the totalAnswerNine to set
     */
    public void setTotalAnswerNine(String totalAnswerNine) {
        this.totalAnswerNine = totalAnswerNine;
    }
}
